Blob 和 canvas 压缩图片

Blob对象

一个 Blob对象表示一个不可变的, 原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式。
File 接口基于Blob,继承 blob功能并将其扩展为支持用户系统上的文件。

Blob构造函数

1
var blob = new Blob(data[, options]))

返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。

Blob构造函数接受两个参数:

参数data是一组数据,所以必须是数组,即使只有一个字符串也必须用数组装起来.

参数options是对这一Blob对象的配置属性,目前也只有一个type也就是相关的MIME需要设置 type的值: ‘text/csv,charset=UTF-8’ 设置为csv格式,并设置编码为UTF-8,’text/html’ 设置成html格式。

1
2
3
4
5
6
7
var blob = new Blob(['啦啦啦啦,我是Blob'],{type: 'text/html'});
console.log(blob)

Blob {size: 23, type: "text/html"}
size: 23
type: "text/html"
__proto__: Blob

URL.createObjectURL()

URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。
这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

1
objectURL = URL.createObjectURL(blob);

使用URL.createObjectURL()函数可以创建一个Blob URL,参数blob是用来创建URL的File对象或者Blob对象,返回值格式是:blob://URL。

URL.revokeObjectURL()

URL.revokeObjectURL() 静态方法用来释放一个之前通过调用 URL.createObjectURL() 创建的已经存在的 URL 对象。当你结束使用某个 URL 对象时,应该通过调用这个方法来让浏览器知道不再需要保持这个文件的引用了。

Blob的使用

使用Blob最简单的方法就是创建一个URL来指向Blob

1
2
3
4
5
6
7
8
<a download="data.txt" id="BlobEle">下载</a>   

var data= 'Hello world!';
var blob = new Blob([data], {
type: 'text/html,charset=UTF-8'
});
window.URL = window.URL || window.webkitURL;
document.querySelector("#BlobEle").href = URL.createObjectURL(blob);

Blob 响应

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// blob 图片
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://127.0.0.1:8848/bootstrap/img/sui.png', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
var blob = this.response;
var img = document.createElement('img');
var URL = window.URL || window.webkitURL; //兼容处理

var objectUrl = URL.createObjectURL(blob);
// img.onload = function(e) {
// window.URL.revokeObjectURL(img.src); // 释放 url.
// };
console.log(objectUrl)
img.src = objectUrl;
document.body.appendChild(img);
}
};

xhr.send();

前端图片canvas,file,blob,DataURL等格式转换

利用URL.createObjectURL()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
<html>
<head>
<title>base</title>
</head>
<body>
<input type="file" name="" id="file" >
<img src="" id="img">
<script type="text/javascript">
window.onload = function () {
let $img = document.getElementById('img')
document.querySelector('#file').onchange = function (e) {
console.log(e.target.files[0])
let file = e.target.files[0]
let fileUrl = window.URL.createObjectURL(file)
$img.src = fileUrl
img.onload = function () {
// 手动回收
URL.revokeObjectURL(fileUrl)
}
}
}
</script>
</body>
</html>

结果:
<img src="blob:http://127.0.0.1:8848/624ada2a-6138-4dc6-86c1-1348f53820ff" id="img">

利用FileReader.readAsDataURL()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
<head>
<title>base</title>
</head>
<body>
<input type="file" name="" id="file" >

<img src="" id="img">
</body>
<script type="text/javascript">
let $img = document.getElementById('img')

document.querySelector('#file').onchange = function (e) {
console.log(e.target.files[0])
let file = e.target.files[0]
// 判断是否支持FileReader
if (!file || !window.FileReader) return
// 创建一个reader
var reader = new FileReader()
// 将图片转成base64格式
reader.readAsDataURL(file)
// 读取成功后的回调
reader.onloadend = function () {
let result = this.result
$img.src = result
console.log('============未压缩图片===========')
console.log(result.length/1000/1000 + 'M')
console.log('============未压缩图片===========')
}
}
</script>
</html>

结果:
<img src="data:image/jpeg;base64,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" id="img">

canvas转为blob对象 canvas生成的图片,如何上传到七牛云或服务器?

答案是将canvas输出为Blob对象,这样就可以像File对象一样操作它了

1
2
3
4
 canvas.toBlob(function (name, quality=0.8) {
console.log(blobObj)
let url = URL.createObjectURL(blob); // 转化 dataurl 地址
})

获取到的图片是Blob格式的,如何显示在html中?

答案还是将Blob对象转换为DataUrl的形式。

1
2
3
4
canvas.toBlob(function (blobObj) {
let imgSrc = window.URL.createObjectURL(blobObj)
document.getElementById('img').src = imgSrc
})

blob dataUrl 格式 转为 base 64

创建 img 对象 通过 canvas 操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let img = new Image();

img.src = res.tempFiles[0].path;
img.onload = function () {
that.test_img = that.getBase64Image(img)
console.log(that.getBase64Image(img))
}

getBase64Image(img)
{
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;

var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);

var dataURL = canvas.toDataURL("image/png");
return dataURL
// return dataURL.replace("data:image/png;base64,", "");
}

canvas图片压缩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE html>
<html>
<head>
<title>base</title>
</head>
<body>
<input type="file" name="" id="file" >

<img src="" id="show_img">
</body>
<script type="text/javascript">
let $show_img = document.getElementById('show_img')

document.querySelector('#file').onchange = function (e) {
console.log(e.target.files[0])
let file = e.target.files[0]
// 判断是否支持FileReader
if (!file || !window.FileReader) return
// 创建一个reader
var reader = new FileReader()
// 将图片转成base64格式
reader.readAsDataURL(file)
// 读取成功后的回调
reader.onloadend = function () {
let img = new Image();
let result = this.result
img.src = result
console.log('============未压缩图片===========')
console.log(result.length/1000/1000 + 'M')
console.log('============未压缩图片===========')

// 图片压缩后
img.onload = function () {
let data = compress(img)
$show_img.src = data
}

}
}

function compress(img) {
let canvas = document.createElement("canvas");
let ctx = canvas.getContext("2d");
let initSize = img.src.length;
let width = img.width;
let height = img.height;
canvas.width = width;
canvas.height = height;
// 铺底色
ctx.fillStyle = "#fff";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, width, height);

//进行最小压缩
let ndata = canvas.toDataURL("image/jpeg", 0.1);
console.log("*******压缩后的图片大小*******");
console.log(ndata.length/1000/1000 + 'M');
console.log("*******压缩后的图片大小*******");

// 转为 blob dataUrl 格式
// ndata = window.URL.createObjectURL(convertBase64UrlToBlob(ndata));
return ndata;
}

// Base64 转 blob
function convertBase64UrlToBlob(urlData) {
var arr = urlData.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}

// Blob to Base64
function blobToDataURL(blob, callback) {
let a = new FileReader();
a.onload = function (e) { callback(e.target.result); }
a.readAsDataURL(blob);
}

// dataurl blob 格式转化 base 64
// 形如 blob:http://localhost:8000/6c5b1a61-8452-4a4e-9578-7f49c78c556f 转为 base 64
//img 对象
getBase64Image(img)
{
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;

var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);

var dataURL = canvas.toDataURL("image/png", 0.6);
return dataURL
// return dataURL.replace("data:image/png;base64,", "");
}
</script>
纵有疾风起,人生不言弃!